package models

// User 用户表
type User struct {
	BaseModel
	Nickname          string  `gorm:"size:50;not null" json:"nickname"`
	Avatar            string  `gorm:"size:255" json:"avatar"`
	Phone             string  `gorm:"size:20;index" json:"phone"`
	OpenID            string  `gorm:"size:100;uniqueIndex;column:openid" json:"openid"`
	LevelScore        float64 `gorm:"type:decimal(10,2);default:0.00" json:"level_score"`
	ContributionScore float64 `gorm:"type:decimal(10,2);default:0.00" json:"contribution_score"`
	WinRate           float64 `gorm:"type:decimal(5,2);default:0.00" json:"win_rate"`
	TotalGames        int     `gorm:"default:0" json:"total_games"`
	WinGames          int     `gorm:"default:0" json:"win_games"`
	Status            int     `gorm:"default:1;comment:状态 1正常 0禁用" json:"status"`
}

func (User) TableName() string {
	return "go_user"
}

// UserCourse 用户课程表（用户购买的课程）
type UserCourse struct {
	BaseModel
	UserID   uint `gorm:"not null;index" json:"user_id"`
	CourseID uint `gorm:"not null;index" json:"course_id"`
	OrderID  uint `gorm:"default:0" json:"order_id"`

	// 关联
	User   User   `gorm:"foreignKey:UserID" json:"user,omitempty"`
	Course Course `gorm:"foreignKey:CourseID" json:"course,omitempty"`
}

func (UserCourse) TableName() string {
	return "go_user_course"
}
